import request from '../utils/request'

/**
 * 封装文章相关的接口的接口
*/
export function getArticleList (channelId, timestamp, with_top = 1) {
  // 返回一个请求的Promise
  return request.get('articles', {
    params: {
      channel_id: channelId, timestamp, with_top
    }
  })
}

/**
 * 封装对文章不感兴趣的接口
*/
export function disLikes (target) {
  return request.post('article/dislikes', {
    target
  })
}

// 根据文章ID举报
/**
 *
 * @param {*} target 文章ID
 * @param {*} type 举报类型
 */
export function reportArticle (target, type) {
  return request.post('article/reports', {
    target, type
  })
}

// 封装联想补全接口
export function suggestArticle (q) {
  return request.get('suggestion', {
    params: {
      q
    }
  })
}

/**
 * 封装获取文章查询结果列表
*/
// eslint-disable-next-line camelcase
export function searchArticles ({ page = 1, per_page = 20, q }) {
  return request.get('search', {
    params: {
      page,
      per_page,
      q
    }
  })
}

/**
 * 获取文章详情
 * @param {*} id 根据文章ID获取文章详情
 */
export function getDetail (id) {
  return request.get(`articles/${id}`)
}

/**
 * 对文章不喜欢
 * @param {*} target 文章ID
 */
export function disLike (target) {
  return request.post('article/dislikes', {
    target
  })
}

/**
 * 取消对文章不喜欢
 * @param {*} target 文章ID
 */
export function unDisLike (target) {
  return request.delete(`article/dislikes/${target}`)
}

/**
 * 对文章点赞
 * @param {*} target 文章ID
 */
export function like (target) {
  return request.post('article/likings', {
    target
  })
}

/**
 * 取消对文章点赞
 * @param {*} target 文章ID
 */
export function unLike (target) {
  return request.delete(`article/likings/${target}`)
}

/**
 * 获取评论或回复
 * @param {String} type - a 查询文章的评论  c 查询评论的回复
 * @param {String} source - 如果查询评论是文章的ID  如果查询回复是评论的ID
 * @param {String} offset - 查询每一页数据的最后一个数据的ID，当作下一页的偏移量
 * @param {String} limit - 每页显示多少条
 */
export function getComments ({ type, source, offset, limit = 10 }) {
  return request.get('comments', {
    params: {
      type, source, offset, limit
    }
  })
}

/**
 * 提交评论或者回复
 * @param {String} target - 做评论的时候：文章ID  做回复的时候：评论ID
 * @param {String} content - 内容
 * @param {String} artId - 文章的ID 当你的做回复的时候
 */
export const articleOrComment = (target, content, art_id = null) => {
  return request.post('comments', { target, content, art_id })
}
